{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Vector transformations are functions that take vectors as inputs and return vectors as outputs. Vector transformations can operate on 2D or 3D vectors.\n",
    "\n",
    "* To effect a geometric transformation of the model, apply a vector transformation to every vertex of every polygon of a 3D model.\n",
    "\n",
    "* You can combine existing vector transformations by composition of functions to create new transformations, which are equivalent to applying the existing vector transformations sequentially.\n",
    "\n",
    "* Functional programming is a programming paradigm that emphasizes composing and, otherwise, manipulating functions.\n",
    "\n",
    "* The functional operation of currying turns a function that takes multiple arguments into a function that takes one argument and returns a new function. Currying lets you turn existing Python functions (like scale and add ) into vector transformations.\n",
    "\n",
    "* Linear transformations are vector transformations that preserve vector sums and scalar multiples. In particular, points lying on a line segment still lie on a line segment after a linear transformation is applied.\n",
    "\n",
    "* A linear combination is the most general combination of scalar multiplication and vector addition. Every 3D vector is a linear combination of the 3D standard basis vectors, which are denoted $e_1 = (1, 0, 0)$, $e_2 = (0, 1, 0)$, and $e_3 = (0, 0, 1)$. Likewise, every 2D vector is a linear combination of the 2D standard basis vec- tors, which are $e_1 = (1, 0)$ and $e_2 = (0, 1)$.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Once you know how a given linear transformation acts on the standard basis vectors, you can determine how it acts on any vector by writing the vector as a linear combination of the standard basis and using the fact that linear combinations are preserved.\n",
    "\n",
    "– In 3D, three vectors or nine total numbers specify a linear transformation.\n",
    "\n",
    "– In 2D, two vectors or four total numbers do the same.\n",
    "\n",
    "This last point is critical: linear transformations are both well-behaved and easy-to-compute with because they can be specified with so little data."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
